package com.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.MessagesEntity;
import java.util.List;
import java.util.Map;
import com.entity.vo.MessagesVO;
import org.apache.ibatis.annotations.Param;
import com.entity.view.MessagesView;


/**
 * 留言板服务接口
 *
 * 该接口定义了与留言板相关的业务方法，包括分页查询留言数据、留言视图查询等。
 * 通过实现该接口，可以实现留言板数据的增删改查操作。
 *
 * @author team10
 */
public interface MessagesService extends IService<MessagesEntity> {

	/**
	 * 分页查询留言数据
	 *
	 * @param params 查询参数，包括分页信息
	 * @return 返回分页结果，包含查询到的留言数据
	 */
	PageUtils queryPage(Map<String, Object> params);

	/**
	 * 根据条件查询留言列表（VO视图对象）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的留言数据列表
	 */
	List<MessagesVO> selectListVO(Wrapper<MessagesEntity> wrapper);

	/**
	 * 根据条件查询单个留言（VO视图对象）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的单条留言数据
	 */
	MessagesVO selectVO(@Param("ew") Wrapper<MessagesEntity> wrapper);

	/**
	 * 根据条件查询留言列表（View视图对象）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的留言视图数据列表
	 */
	List<MessagesView> selectListView(Wrapper<MessagesEntity> wrapper);

	/**
	 * 根据条件查询单个留言（View视图对象）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的单条留言视图数据
	 */
	MessagesView selectView(@Param("ew") Wrapper<MessagesEntity> wrapper);

	/**
	 * 分页查询留言数据，支持自定义查询条件
	 *
	 * @param params 查询参数，包括分页信息
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回分页结果，包含查询到的留言数据
	 */
	PageUtils queryPage(Map<String, Object> params, Wrapper<MessagesEntity> wrapper);

}
